軟件模糊測試的方法有以下這些:
預生成測試用例:需要理解對象規約支持的數據結構和可接受的范圍,然后對應生成測試邊界條件或是違反規約的測試用例。生成測試用例很費神,但可復用。用完用例,則測試結束。
隨機生成輸入:效率最低,但可快速識別目標是否有非常糟糕的代碼。
手工協議變異測試:比隨機生成更加初級。其優點是可充分發揮自己過去的經驗和“直覺”。常用于Web應用安全測試。
變異或強制性測試:模糊器從一個有效的協議樣本或是數據格式樣本開始,持續不斷地打亂數據包或是文件中的每一個字節、字、雙字或是字符串。雖然該方法浪費了CPU資源,但是不需要對應用進行研究,并且整個模糊測試過程可以完全自動化。
自動協議生成測試:需要先對應用進行研究,理解和解釋協議規約或文件定義。但是,這種方法并不基于協議規約或文件定義創建硬編碼的測試用例,而是創建一個描述協議規約如何工作的文法。例如,SPIKE和SPIKEfile工具都是這類測試的典型例子,采用SPIKE腳本描述協議或是文件格式,并使用一個模糊測試引擎來創建輸入數據。
回答所涉及的環境:聯想天逸510S、Windows 10。
軟件模糊測試的方法有以下這些:
預生成測試用例:需要理解對象規約支持的數據結構和可接受的范圍,然后對應生成測試邊界條件或是違反規約的測試用例。生成測試用例很費神,但可復用。用完用例,則測試結束。
隨機生成輸入:效率最低,但可快速識別目標是否有非常糟糕的代碼。
手工協議變異測試:比隨機生成更加初級。其優點是可充分發揮自己過去的經驗和“直覺”。常用于Web應用安全測試。
變異或強制性測試:模糊器從一個有效的協議樣本或是數據格式樣本開始,持續不斷地打亂數據包或是文件中的每一個字節、字、雙字或是字符串。雖然該方法浪費了CPU資源,但是不需要對應用進行研究,并且整個模糊測試過程可以完全自動化。
自動協議生成測試:需要先對應用進行研究,理解和解釋協議規約或文件定義。但是,這種方法并不基于協議規約或文件定義創建硬編碼的測試用例,而是創建一個描述協議規約如何工作的文法。例如,SPIKE和SPIKEfile工具都是這類測試的典型例子,采用SPIKE腳本描述協議或是文件格式,并使用一個模糊測試引擎來創建輸入數據。
回答所涉及的環境:聯想天逸510S、Windows 10。